Industrial controllers are special-purpose computers utilized for controlling industrial processes, manufacturing equipment, and other factory automation, such as data collection or networked systems. In accordance with a control program, the industrial controller, having an associated processor (or processors), measures one or more process variables or inputs reflecting the status of a controlled system, and changes outputs effecting control of such system. The inputs and outputs may be binary, (e.g., on or off), as well as analog inputs and outputs assuming a continuous range of values.
Measured inputs received from such systems and the outputs transmitted by the systems generally pass through one or more input/output (I/O) modules. These I/O modules serve as an electrical interface to the controller and may be located proximate or remote from the controller including remote network interfaces to associated systems. Inputs and outputs may be recorded in an I/O table in processor memory, wherein input values may be asynchronously read from one or more input modules and output values written to the I/O table for subsequent communication to the control system by specialized communications circuitry (e.g., back plane interface, communications module). Output modules may interface directly with one or more control elements, by receiving an output from the I/O table to control a device such as a motor, valve, solenoid, amplifier, and the like.
At the core of the industrial control system, is a logic processor such as a Programmable Logic Controller (PLC) or PC-based controller. Programmable Logic Controllers for instance, are programmed by systems designers to operate manufacturing processes via user-designed logic programs or user programs. The user programs are stored in memory and generally executed by the PLC in a sequential manner although instruction jumping, looping and interrupt routines, for example, are also common. Associated with the user program are a plurality of memory elements or variables that provide dynamics to PLC operations and programs. These variables can be user-defined and can be defined as bits, bytes, words, integers, floating point numbers, timers, counters and/or other data types to name but a few examples.
Industrial controllers are often employed in integrated manufacturing operations that can often involve high-complexity manufacturing processes. Such processes which are sometimes referred to as batch processes are involved in many areas of modern production. These areas include substantially any type of packaged products that are commonly found in grocery stores or other distribution outlets. For example, these products include beverages, candies, sugar, flour, pastries, boxed items such as cereals, frozen products, cheeses, and so forth. Often, complex factory equipment arrangements and programming are provided to produce all or portions of such products. Programming is often provided in terms of Sequential Function Blocks and Charts that relate logical/programmed production operations to equipment assets that control the operations.
One challenge facing automated processing systems is the requirement to produce various different types of products within the confines of a single manufacturing center or facility. For example, often times hundreds of different types of recipes are maintained for some product families that only vary slightly in terms of the actual ingredients in the recipe. Thus, for a product such as cherry vanilla ice cream and a product such as strawberry vanilla ice cream, two different recipes would be required to be maintained—although the only difference in recipe content is the type of fruit employed in the final production process. As can be appreciated, as product families grow in terms of quantity and diversity, maintenance of such recipes', respective programs, and equipment to produce such products becomes ever more complicated in terms of product/factory management but also in terms of maintaining quality within and across product lines.